374. 猜数字大小
https://leetcode-cn.com/problems/guess-number-higher-or-lower/
- 提交时间:2021-11-11 18:54:39
- 执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
- 内存消耗:1.9 MB, 在所有 Go 提交中击败了100.00%的用户
- 通过测试用例:25 / 25
/**
* Forward declaration of guess API.
* @param num your guess
* @return -1 if num is lower than the guess number
* 1 if num is higher than the guess number
* otherwise return 0
* func guess(num int) int;
*/
func guessNumber(n int) int {
if n == 1 {
return 1
}
leftPos := 1
rightPos := n
guessNum := n >> 1
for {
if leftPos == rightPos {
break
}
guessRet := guess(guessNum)
if guessRet == 0 {
break
}
if guessRet == -1 {
rightPos = guessNum
}
if guessRet == 1 {
leftPos = guessNum + 1
}
guessNum = (rightPos + leftPos) >> 1
}
return guessNum
}